package com.xiaoyun.seleniumlinux.mapper;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiaoyun.seleniumlinux.pojo.BaseDO;
import com.xiaoyun.seleniumlinux.pojo.HtmlInfoDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author Xiaoyun461
 * @data 2022/7/13
 */
@Mapper
public interface HtmlInfoMapper extends BaseMapper<HtmlInfoDO> {
    /**
     * 根据url 查询 HtmlInfoDO
     *
     * @param url
     * @return
     */
    default HtmlInfoDO selectByUrl(String url) {
        return selectOne(new LambdaQueryWrapper<HtmlInfoDO>()
                .select(HtmlInfoDO::getId, HtmlInfoDO::getHtmlUrl, HtmlInfoDO::getHtmlMd5, BaseDO::getCreateTime)
                .eq(HtmlInfoDO::getHtmlUrl, url));
    }

    /**
     * 根据unitId 查询  HtmlInfoDO
     *
     * @param id
     * @return
     */
    default HtmlInfoDO selectIdByUnitId(String id) {
        return selectOne(new LambdaQueryWrapper<HtmlInfoDO>()
                .select(HtmlInfoDO::getId, HtmlInfoDO::getHtmlUrl)
                .eq(HtmlInfoDO::getUnitId, id));
    }

    /**
     * 根据md5 判断数据库 是否有重复数据,例如 没有爬到数据时 md5 一致
     *
     * @param md5
     * @return
     */
    default List<HtmlInfoDO> selectLisByMd5(String md5) {
        return selectList(new LambdaQueryWrapper<HtmlInfoDO>()
                .select(HtmlInfoDO::getId, HtmlInfoDO::getHtmlUrl)
                .eq(HtmlInfoDO::getHtmlMd5, md5));
    }

}
